Reducing the time and labor of update operations on multiple server and/or client computers is an ongoing objective of network administrators and computer system manufacturers. In many modern computer systems, the firmware, such as the basic input/output system (“BIOS”), is stored as groups of memory blocks in one or more re-programmable memory devices. These re-programmable memory devices, typically known as “flash” parts, are a type of non-volatile random access memory (“NVRAM”) that allows the firmware BIOS to be updated by using software to erase and program each flash part.
Previous methods for updating firmware stored on the flash memory of a computer system require a video display and input device connected to the computer to be updated and direct contact with the computer to be updated through the display and input device. In one method, the firmware in previous systems is updated by utilizing an application program that utilizes files containing the updated firmware stored on a local device or available through a serial port connection. In the alternative, an update may occur in previous systems through a program provided within the BIOS. While both of these methods for updating the firmware of a computer system work well when a display and keyboard are available and when physical access to the computer may be had, headless computers and server computers within server farms are usually without a console and are remotely operated.
Removing the need to physically operate each computer to update the firmware is especially critical for server farms having numerous computers without a display or keyboard that need updating. Manually updating each computer in a server farm can take an excessive amount of time and administrator labor. Furthermore, updates that occur while operating systems are executing on the network attached computers become even more complex when various operating systems are executing on the various computers, potentially requiring a different update procedure for each computer depending on the operating system manufacturer or version.
It is with respect to these considerations and others that the present invention has been made.